/**
 * define & pragma
 */

/**
 * C 预编译
 * C语言的预编译以#开头，作用是在真正的编译开始之前，对代码做些处理 (预编译)
 *
 * 预编译                  意义
 * #include <REGX52.H>  把REGX52.H文件的内容搬到此处
 * #ifndef __XX_H__       如果没有定义__XX_H__ 防止重复定义(一般都是前后2个'_')
 * #define __XX_H__       定义__XX_H__
 * #define PI 3.14      定义PI，将PI替换为3.14
 * #endif               与#ifndef,#if匹配，组成"括号"
 *
 * 此外还有:
 * #ifdef, #if, #else, #elif, #undef 等
 */

//1.定义全局变量
#ifndef PI
#define PI      3.1415926F   //定义常量 PI, 不是变量, 不能修改
#endif

#define mian main
#define ， ,
#define ； ;
#define 。 .



/**
 * 2.防止头文件重复包含(a包含b, b包含a)
 * 会报错: C014, 包含文件太多: 深度 = 1024
 * 缺点:
 *     只能用于 Windows 中
 */
#pragma once


/**
 * 3.防止重复包含, 另外一种解决方法
 *   2个下划线 + 大写 + H(头文件) + 2个下划线
 */
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
//...
#endif


/**
 * 4.定义函数??
 */
#ifndef MAX
#define MAX(a, b) {a > b ? a : b}
#define MAX1(a, b) a > b ? a : b     //可以不加{}
#endif



